package com.com.unit2.gram;

public class OnlinePackage extends AbstractPackage implements OnlineService,CallService{
    // 1.私有化独有的成员变量
    private int netFlow;    // 上网流量
    private int monthlyRate;// 每月资费

    // 3.在构造方法中调用set方法并进行数值合理性的检查
    public OnlinePackage() {
        super();
    }

    public OnlinePackage(int netFlow, int monthlyRate) {
        this.netFlow = netFlow;
        this.monthlyRate = monthlyRate;
    }

    // 2.提供共有的get和set方法并进行数值合理性的检查
    public int getNetFlow() {
        return netFlow;
    }

    public void setNetFlow(int netFlow) {
        if(netFlow>=0) {
            this.netFlow = netFlow;
        } else {
            System.out.println("上网流量不合理哦！");
        }
    }

    public int getMonthlyRate() {
        return monthlyRate;
    }

    public void setMonthlyRate(int monthlyRate) {
        if(monthlyRate>=0) {
            this.monthlyRate = monthlyRate;
        } else {
            System.out.println("每月资费不合理哦！");
        }
    }

    // 重写方法
    @Override
    public void callService(int talkTime, SIMCard simcard) {
        simcard.show();
        //System.out.println("onlinePackage中的方法callService");
    }

    @Override
    public void onlineService(int netFlow, SIMCard simcard) {
        simcard.show();
        setNetFlow(netFlow);
        //System.out.println("上网套餐类中的方法onlineService");
    }

    @Override
    public void show() {
        System.out.println("====上网套餐信息====");
        System.out.println("上网流量：" + getNetFlow());
        System.out.println("每月资费：" + getMonthlyRate());
    }
}
